逆波兰表达式 (RPN) 详解
逆波兰表达式(也叫后缀表达式)是一种不需要括号的数学表达式书写方式。
1. 什么是逆波兰表达式?
普通的算术表达式(中缀表达式)是 1 + 2,而后缀表达式则是 1 2 +。
核心规则:
- 操作数在前,运算符在后。
- 遇到数字就入栈。
- 遇到运算符就弹出栈顶的两个数字进行计算。
2. 算法实现 (C语言)
利用我们之前写的顺序栈,可以很方便地实现计算逻辑:
#include <stdio.h>
#include <stdlib.h>
// 假设我们已经定义了一个 Stack 结构体
void calculateRPN(char* expression) {
// 1. 初始化栈
// 2. 遍历字符串
// 3. 遇到操作数进栈,遇到运算符出栈计算
printf("正在计算表达式: %s\n", expression);
}